NetBSD/i386 インストール メモ
2000 Apr. 18
うえだうえお
最近、NetBSD に手を染め始めました(^^)。やってみて思ったのですが、FreeBSD や Linux に比べると、インストールに関する情報が非常に少ないと思いました。特に Disk 周りの情報が少ないようで、僕自身もインストールの際には随分不安な思いをしました。FreeBSD や Linux だと、あまり詳しいことを知らなくても何となくインストール出来てしまうのですが、NetBSD では、ある程度知らないと、installer を使っても少し難しく感じてしまいます。そこで、無ければ作るというとちょっとおこがましいのですが、僕がインストールをしてみて気づいた事をまとめておきたいと思います。
なお、NetBSD に慣れた方は installer は使わない(補足.1)そうですが、ここでは installer を使用する事を前提に話を進めます。また、NetBSD のバージョンは 1.4.2 、NetBSD と共存させた Windows は、Win95 です。
注意!
ここには、僕(うえだうえお)が試行錯誤して学び取った事を記してあるにすぎません。すべての記述が正しい事を保証するものではありません。またここに書かれてあるとおりの事をあなたが行った結果、何らかの損害が生じたとしても、僕(うえだうえお)は一切の責任を負いません。すべては自らの責任の下に行われなければならない事をご理解ください。
【重要】8GB 超問題について。
最近のマシンをご使用になられる場合、HDD が 8GB を越えている事があると思います。FIPS や OS-BS では 8GB 超 HDD を使用する場合には致命的な問題が発生する事があるようです。僕が使用している機器は前時代の中古品ばかりなもので、8GB 超問題に関しては検証できませんが、以下にこの問題(および IDE HDD の構造の基本)について非常に良くまとまった資料がありますのでご参照下さい。
http://hp.vector.co.jp/authors/VA012337/freebsd/hdd-faq.html
目次
読者には以下のような人を想定しています。
- NetBSD は始めてインストールする
- DOS/Windows の起動ディスクが作成できる
- いままでに DOS,Windows,FreeBSD もしくは Linux をインストールした事がある
意外に知られていない事なのだと思うのですが、IDE の規格上、disk を 分割できるのは4つまでです。この領域を「基本パーティション」と呼びます。IDE 的には「基本パーティション」は4つまで取ることが出来るのですが、DOS (Windows) の FDISK では一つしかとれません。その代わりに「拡張領域」の中に「論理ドライブ」を設定する、という方法でもっと沢山の領域に分割して使用できます。この辺りは上記資料に詳しいので、そちらを参照してください。
ここでは、「IDE HDD では基本パーティションは4つまで」ということを理解しておくと、インストール時の混乱が少ないと思います。(補足.2)
以下では、領域・パーティションという言葉は上記の IDE ドライブにおける「基本パーティション」の事を指します。
まっさらなディスクにインストールする場合。
DOS (Windows) の FDISK コマンドを使用して、disk を分割します。もちろん、このときに DOS もしくは Windows はターゲットディスク以外のディスク(FDD が良いでしょう。)から起動されていなければなりません。
FDISK では、「基本領域」と呼ばれるパーティションを一つだけ取ることが出来ます。それ以上の DOS 領域が必要であれば、さらに「拡張領域」を取って、その中に「論理ドライブ」を設定すれば良いでしょう。もちろん、NetBSD をインストールするために、「基本領域」「拡張領域」のサイズを設定する際に、未使用の領域を残しておきます。
そしてもう一つ。忘れがちなのが「アクティブ・パーティション」の設定です。これを忘れると、DOS をインストールしても起動されません。(Win95 ではどうなるのか知りません。)
ちなみに、Win95 の FDISK を起動した際に、「大容量ディスクのサポートを使用可能にしますか?」と聞いてきます。ここで "Y" と答えると、その領域は FAT32 になってしまいます。みなさんご存知の話だとは思うのですが、実は僕は知らなくて、FAT16 の領域を作るのに難儀しました。(苦笑)
なお、すべてを NetBSD 領域にするのであれば DOS 領域は必要ありません。現在ある DOS の領域はすべて解放してしまって良いでしょう。あるいは Windows をインストールするのであれば、FDISK を終了し、一度再起動してからインストールを開始してください。(NetBSD より先にインストールしておきましょう。何かと便利ですから。:-))
既に Windows などがインストールされている場合。
Win95/98 などがプレインストールされているマシンでは、HDD のすべての領域が DOS 領域として確保されてしまっているでしょう。この場合は、FDISK で一旦領域を解放し、新たにパーティションを取り直すか、fips というツールを使って DOS 領域を縮めてやる必要があります。いずれにしても、ターゲットディスクが起動ディスクでは作業できませんから、FDD などから起動する事になります。
FDISK を使用する場合は、一旦領域を解放(HDD上の情報はすべて消えます!)してやった後は、上記の「まっさらな・・・」に従って領域を確保してやります。ただし Note PC や一部のメーカのプレインストールマシンでは、メーカ独自の領域が設定されていたりするので要注意です。この領域を解放してしまうと、にっちもさっちもいかなくなる事があります。FDISK の「領域を表示する」というオプションを利用して、事前に良く確認しておきましょう。
fips については、以下に詳しい情報があります。ドキュメントを良く読んで作業してください。scandisk で HDD のエラーチェックをし、defrag をかけてやれば大抵は問題なく行くでしょう。ただしこちらも、メーカによっては disk の後半部分に特殊な領域を設定している場合がありますから、やはりチェックは必要です。
とあるメーカの製品は disk 先頭に bios 設定用のツールを置くための領域をもっています。このメーカのとある機種で fips を使おうとした際に、この特殊用途のパーティション区切りがシリンダ区切りと一致しないという警告がでた事がありました。このとき分割したのはそれより後ろの領域だったので、特に問題なく分割できましたが、やはり気持ちよくはありませんね。
なお、fips の使用法については、FreeBSD や Linux をお使いの方なら、経験もあるでしょうし、参考になるサイトは沢山あるでしょうから、ここでは割愛します。以下に必読情報のみ記します。
fips2.0の一次配布元:http://www.igd.fhg.de/~aschaefe/fips/
fips2.0 付属ドキュメントの翻訳:http://www.linux.or.jp/JF/JFdocs/FIPS20.html
上記資料に詳しいのですが、大容量 disk で fips を使用するのはとても危険です。資料を読んでも良く理解できない場合は使わない方が良いでしょう。
さて、ここまで「パーティション」と呼んできたのは、「基本パーティション」の事です。一台のドライブに複数の OS をインストールする場合は、各々をこの「基本パーティション」にインストールする訳です。
ところで、*BSD (UNIX) 系 OS のファイルシステムは、複数のドライブに分散したものを、mount という操作で / (root) ディレクトリの下に一本化されています。もちろん、一つの大きなドライブにファイルシステムをまとめてしまうことも可能ですが、大きなドライブであっても複数に分割して、/, /usr, /var など用途ごとにの「パーティション」を作成する事が多いようです。*BSD 系 OS では、この「パーティション」を記述する仕組みを disklabel と呼びます。以降、単に「パーティション」と書かれている時は *BSD 系 OS における disklabel で記述されたものだと思ってください。そして、FDISK によって分割された領域は、「基本パーティション」と書いて区別することにします。
では、disklabel を具体的に見てましょう。このあたりは、本当はインストールが完了してからの方が理解しやすいと思うのですが、インストール中に惑わないためには、基礎知識としてある程度の理解が必要です。なんだか「鶏と卵」みたいですが、このあたりが NetBSD が取っつきにくいと思われてしまうことの一因かも知れません。
もしも手元にインストール済みの *BSD 系 OS があれば、
disklabel wd0
(一台目の HDD の場合。二台目だと wd1 となります。)
として見てください。シリンダ数、セクタ数、回転速度など、ドライブ情報がずらずらっと表示されて、最後にパーティション情報が表示されるはずです。
# size offset fstype [fsize bsize cpg]
a: 173376 1451520 4.2BSD 1024 8192 16 # (Cyl. 1440 - 1611)
b: 264096 1624896 swap # (Cyl. 1612 - 1873)
c: 1736316 1451520 unused 0 0 # (Cyl. 1440 - 3162*)
d: 3187836 0 unused 0 0 # (Cyl. 0 - 3162*)
e: 1298844 1888992 4.2BSD 1024 8192 16 # (Cyl. 1874 - 3162*)
各行の先頭に振ってある、a, b, c と言った文字がパーティションを表します。後は見れば判ると思うのですが、size がそのパーティションのサイズ、offset がパーティションの開始位置です。行の終わりには、そのパーティションが何番目のシリンダから始まって、何番目のシリンダで終わる、ということが書かれています。ここをよく見ると気づくのが、どうも重複している領域があるようです。実はこれは、c が NetBSD がインストールされている IDE HDD のパーティションを、d がディスク全体を表現しているために、一見重複している様に見えてしまいます。しかしこのことはインストール時には気にしなくても大丈夫です。(補足.3)
それよりも、d がディスク全体を、c が NetBSD がインストールされている 基本パーティションを表しているのであれば、使っていない領域があることになりますね。実はこの領域が、前節で FDISK によって確保した「DOS 領域」に相当します。ここでは disklabel には書き込まれていないのですが、実ははこの「DOS 領域」も disklabel に書き込む事ができ、他の基本パーティションを disklabel のパーティションの一つとして扱うことができます。FreeBSD に慣れた方だと、ここがちょっと混乱するところだと思います。
まとめると、
- IDE HDD での基本パーティションは4つまで
- NetBSD はそのうちの一つの基本パーティションを、さらに分割して使用する
- 他の基本パーティションも、NetBSD の パーティションも、disklabel 上では同等の扱いである
という事になります。
ここまで、なるべくわかりやすく解説したつもりなのですが、やはりちょっと判りにくいかも知れません。次節では具体的なインストール作業を通して解説しますが、その前に FreeBSD との比較を少し書いておきましょう。
FreeBSD のスライス
FreeBSD では、IDE HDD での基本パーティションを「スライス」と呼びます。NetBSD と違って disklabel をスライス単位で書きます。同じドライブ上にあってもスライスが違えば、別ディスクの様に扱う訳です。微妙な差のようですが、FreeBSD に慣れている方はちょっと違和感を感じると思います。特に installer を使って disk の設定をしていると、自分が何をやっているのか判らなくなる瞬間があるかもしれません。(僕だけ?)
では以下に、具体的な手順を記して行きます。このメモの主な目的は、IDE HDD 周りの設定の解説ですから、installer kernel において必要なデバイスは問題なく認識し、さらに IDE 以外の HDD は接続されていないという前提ですすめます。
boot floppy の作成
bootable な CD-ROM をお使いの場合は必要ありませんが、通常は DOS では RAWRITE.EXEを、UNIX では dd コマンドを用いて boot floppy を作成します。これらのコマンドの詳細は FreeBSD や Linux 関係のサイトに沢山ありますので、ここでは割愛します。元になるimage ファイルの場所だけしるしておきます。
NetBSD-1.4.2/i386/installation/floppy/boot1.fs
NetBSD-1.4.2/i386/installation/floppy/boot2.fs
CD-ROM でも ftp サイトでも、相対位置は同じ場所にあるはずです。
installer の起動
1.4.2 からは、boot floppy が2枚になっています。1枚目の floppy で起動すると、途中で2枚目と交換するように促してきます。そして kernel のロードが終わると installer が自動的に起動します。このインストーラは、Ctrl-C でいつでも抜けられます。/sysinst を実行すれば一番目のメニューから再実行されます。installer のメニューは以下の通りです。
a: Install NetBSD to hard disk
b: Upgrade NetBSD to hard disk
c: Re-install sets or install additional sets
d: Reboot the computer
e: Utility menu
x: Exit Install System
ここでは初めてのインストールであることを想定して、'a: Install NetBSD to hard disk' を選択します。すると、インストールの手順を説明する画面がでて、続けるかどうかきいてきます。
(略)
a) Partition your disk
b) Create new BSD fils system
c) Load and Install distribution sets
(略)
a: no
b: yes
もちろん、ここでは yes を選択します。default は no ですから、このまま Enter をたたくと振り出しに戻ってしまいます。
インストール先 disk の選択
yes を選択すると、次の様に認識された HDD が表示され、インストール先の HDD を選ぶように促してきます。
I found only one disk, wd0. Therefor I assume you want to install NetBSD on it.
a: ok
wd0 は IDE HDD のデバイス名です。FreeBSD をインストールした経験がある方は見覚えがあるでしょう。この例では接続されている HDD が一台きりですので、wd0 しか表示されません。このまま Enter をたたいてください。
複数の HDD を接続している場合は、認識されたすべてのデバイスを表示してデバイス名の入力を促してきます。default は wd0 になっていますので、install 先のデバイスを間違えないように選びましょう(笑)。すると次に、disk のジオメトリ情報が表示されます。
This disk matches the following BIOS disk:
BIOS # cylinders headers sectores
0 788 64 63
a: this is a correct geometry
b: Set the geometry by hand
ここは大抵はそのままで正しいでしょうから、そのまま a: を選択します。
IDE HDD における基本パーティションの設定
そしてその次が重要です。
a: Use only part of the disk
b: Use the entire disk
同じ HDD に他の OS を共存させる場合は a: を、まるまる一本を NetBSD で使用する場合には b: を選びます。Win95 を共存させる前提ですから、ここでは a: を選びます。すると、以降のパーティション設定作業で使用する「単位」を指定します。
a: Megabytes
b: Cylinders
c: Sectors
メガバイト・シリンダ数・セクタ数を指定できます。本当はシリンダ単位で指定するのが経済的だと思うのですが、メガバイト単位の方がわかりやすいでしょう。慣れた方は、メガバイトでざっと設定しておいて、あとでシリンダ単位で設定し直すそうです。
No Start(meg) Size(meg) End(meg) Kind
0 0 (サイズ) (サイズ) Primary DOS, 16bit FAT>32MB
1 (サイズ) (サイズ) (サイズ) unused
2 unused
3 unused
(略)
a: Edit partition 0
b: Edit partition 1
c: Edit partition 2
d: Edit partition 3
e: Reselect size specification
x: Exit
いよいよ、パーティションテーブルらしきものが出てきました。ただしこれは、IDE HDD の基本パーティション一覧です。(サイズ)と書かれているところにはちゃんと数字が入っているはずですが、ここでは割愛してあります。(^^;)
この例では、一つ目の IDE HDD のパーティションには既に Win95 がインストールされています。2つ目は未使用領域として FDISK で確保してありますから(というのは変な表現なんですが)、b: を選択して、この IDE HDD のパーティションの情報を書き換えます。
a: Kind
b: Start and size
c: Set active
d: partition ok
という選択肢があります。サイズや active の情報については、始めに FDISK で設定してあるはずですからここでは パーティション種別(Kind) のみ変更すれば良いでしょう。もちろん、'NetBSD' を選択します。これで良ければ、'd: partition ok' を選択して、一つ前のメニューに戻って 'x: Exit' を選んで次に進みます。
これで、基本パーティションの設定は終了です。このときにいくつか選択を促される場合があります。
(1) NetBSDのパーティションが、boot 可能なシリンダ数より後ろにある場合
HDD をいくつかの基本パーティションを分割した結果、後ろの方のパーティションが、BIOS が OS をブートできる領域 (1024 cylinder) より後ろの方になってしまうことがあります。
このときは、installer が警告を出してくれます。使っている HDD が小容量のものであれば、OS-BS などの boot loader を使用する事で boot 可能な場合もありますので、警告が出ても、とりあえず最後までインストールしてみましょう。(8GB 以上のものを使っている場合は要注意です。こちらの資料を参考にしてください。
(2) NetBSD 以外の OS をインストールしている場合
NetBSD に付属の boot loader (OS-BS 1.35 辺りでしょうか?) をインストールするかどうか聞いてきます。僕は OS-BS 2.0beta8 を使いましたので、ここは 'No' としておきました。OS-BS については後述します。
disklabel の設定
以降は、disklabel の設定となります。installer を使うと、今やっている作業が FDISK 相当なのか disklabel 相当なのかが見えにくくなるので、注意しましょう。
Choose your installation
a: Standard
b: Standard with X
c: Custom
このメニューで a:, b: を選択すると、標準的な partition サイズを installer が適当に計算して、disklabel の形式で示してくれます。a: と b: の違いは、swap 領域のサイズだけの様です。with X は Standard の2倍確保するようです。ちなみに「標準的」と書きましたが、/var を別領域にしてくれないので、「そんなのは嫌(^^;)」という人は 'c: custom' を選んで自分で設定してください。
このあと、
id: Size Offset End FStype Bsize Fsize Mount point
--- ---- ------ ----- ------ ----- ----- -----------
a: 4.2BSD 8192 1024 /
b: swap
c: unused
d: unused
e: 4.2BSD 8192 1024 /usr
a: Change a partition
b: Partitions are ok
などと表示されます。さらに調整したければ、a: を選びましょう。a - h までの partition を書き込むことが出来ます。ただし c, d は IDE HDD パーティションや disk全体を表すので変更出来ません。これで良ければ、b: を選んで次へ行きます。
Please enter a name for your NetBSD disk[mydisk]
というプロンプトが出ますから、ここで好きな名前を入れてください。これも disklabel に書き込まれます。デフォルトは mydisk です。次の画面で yes を選択すると、disklabel が実行され、newfs が始まります。ここまでは disk にはなにも書き込まれていませんから、いつでもキャンセル(Ctrl-C)できます。
これ以降は、distribution sets (tarball) がおかれているメディア(サイト)を入力し、あとは sets が展開されるのを待つだけです。このメモでは、disklabel 周りを解説するのが主目的でしたので、以降は割愛します。また機会があったら詳しく書こうと思いますが。
真相
大きな声では言えないので小さなフォントで書いておきます。実は、インストールをした際に全然メモを取っていなかったらしい。で、これ以上先を詳しく書こうと思うと、もう一度インストール作業をしないといけないので、ちょっと嫌がっている(^^;)。だから「機会があったら」といいつつ、機会は何時来るのかまったく判らないともいふ。m(_ _)m
えらい手抜きをしましたが、これで無事に NetBSD はインストールされていることでしょう。しかし bootselctor をインストールしなかったので、このままでは Win95 しか起動しないはず。(それすら起動しない人はごめんなさい。(^^;))
boolselector, bootloader には市販品も含めて色々あるのですが、僕は OS-BS 2.0 beta8 を使いました。使い勝手は良いです。これも詳細はドキュメントを読んで頂くか、検索エンジンで 'OS-BS' で検索すれば沢山出てきますので、そちらを読ん下さい。
OS-BS 2.0 beta8 の一次配布元:http://www.prz.tu-berlin.de/~wolf/os-bs.html
ちょっと話が逸れますが、新バージョンは bootmanager.com にあるとか言うので行ってみました。う〜ん、どうやら商用ソフトになった様?(なんか怪しげだ。FAQ には全部同じものだと書いてあるけど。)
ですが、ここから取ってこなくても、FreeBSD の配布物の中に含まれていますので、それを使えば良いでしょう。注意点だけ書いておきます。
- 起動は Floppy から行うこと
- OS を選択する際に、IDE HDD のパーティションを選ぶのですが、NetBSD の領域は type が unknown なっています。気にしないで、ID: で選んでラベルをはっつけてしまえば、問題なく起動します。
- FreeBSD の配布セットの中には OS-BS 1.35 も入ってますのでご注意。
また、8GB 超 の HDD をご使用の場合は、βではうまくいかない場合があるようです。このあたりも前出の資料に詳しいですので、ご参照下さい。
(ほんとに優れた資料です。感謝です。)
- その1
状況によっては使うそうです。current のインストーラは IPv6 ready(IPv6でインストールできる)だったりする事が嬉しい人もいるそうです。
- その2
厳密には PC/ATのBIOS的な問題だそうです。SCSIであっても、他のOSと共存して使用しようとすると同じ様な制約がかかるそうです。
- その3
重複して使用しなければインストール後も気にしなく大丈夫です。:-)
また、bad144(8)の機能を使う場合には、最後のffsパーティションは190セクタ少なくしておき、disklabelのfragにbadsectを指定して、bad144(8)で設定を行う必要があります。
(以上、神戸さんからのご助言)
改訂履歴
- 2000 Apr.18
draft version 公開
- 2000 Apr.19
IDE HDD に関する基本事項を訂正。(基本パーティション・拡張パーティションについて)
FIPS, OS-BS の 8GB 未対応問題について補足。
(多謝 >Necoさんm(_ _)m)
- 2000 Apr.22
神戸さんから頂いたご助言を補足事項として追加しました。(多謝^2 > 神戸さん)
Copyright(C)2000, うえだうえお, All Rights Reserved.